import {GetUserConfig,GetCountdownTimer,SetCountdownTimer,ShowTime,RepeatTime,HumanTime,SetThemeMode} from "./common.js";

let timer, config, interval;
$(document).ready(function(){
  /**
   * @since 2024-09-19 主函数
   */
  Main();

  /**
   * @since 2025-09-04 2秒后关闭页面
   */
  // setTimeout(function (){
  //   window.close();
  // }, 1500);
});

/**
 * @title 主调函数
 * @author start2004
 * @since 2025-02-27
 *
 * @return {null}
 */
async function Main(){
  /**
   * @since 2024-09-29 更新title
   */
  document.title = chrome.i18n.getMessage("extension_name");

  /**
   * @since 2024-10-30 渲染文字，标题，按钮
   */
  let idArray = new Array("close", "repeat");
  for(const id of idArray){
    $("#"+ id).html(chrome.i18n.getMessage(id));
  }

  /**
   * @since 2024-09-29 获取倒计时信息timer
   * @since 2024-09-29 用户配置信息config
   */
  timer = await GetCountdownTimer();
  config = await GetUserConfig();
  // console.log(config);

  /**
   * @since 2025-02-26 主题渲染
   */
  SetThemeMode(config);

  /**
   * @since 2024-09-29 音频渲染
   */
  if(config.audio > 0){
    $("#audio").attr("src", "../assets/audio/"+ config.audio +".mp3");
    document.getElementById('audio').play();
  } else {}

  /**
   * @since 2024-09-30 监听2个按钮
   */
  $("#close").click(function(){
    /**
     * @since 2025-11-27 再次执行UpdateTimer，用户点击触发，关闭图标上提示信息
     */
    chrome.runtime.sendMessage({action: "update-timer", data: timer});
    setTimeout(function (){
      window.close();
    }, 150);
  });
  $("#repeat").click(function (){
    /**
     * @since 2024-09-30 重新开始，保存timer
     */
    timer = RepeatTime(timer);
    SetCountdownTimer(timer);

    /**
     * @since 2024-09-23 通知background
     * @since 2024-09-30 关闭页面
     */
    chrome.runtime.sendMessage({action: "update-timer", data: timer});
    setTimeout(function (){
      window.close();
    }, 150);
  });

  /**
   * @since 2024-09-30 显示提示信息
   */
  let msg = chrome.i18n.getMessage("countdown_has_ended");
  msg = msg.replace(chrome.i18n.getMessage("time_replace"), HumanTime(timer["countdowntime"]));
  $("#msg").html(msg +' <span id="past-time"></span>');

  /**
   * @since 2024-09-29 定时任务，显示超时时间
   */
  PastTime();
  interval = setInterval(PastTime, 1000);
}

/**
 * @title 倒计时结束，过去多少时间
 * @author start2004
 * @since 2024-09-29
 *
 * @return {}
 */
function PastTime(){
  /**
   * @since 2024-09-29 计算已经过去多少秒
   */
  const now = parseInt(new Date().getTime() / 1000);
  const past = now - timer.endtime;

  /**
   * @since 2024-09-29 设置新的倒计时，又刷新通知页面
   * @since 2024-09-29 超时1小时
   */
  if (past < 0 || past > 3600){
    window.close();
  } else {}

  /**
   * @since 2024-09-29 更新倒计时
   */
  $("#past-time").html(ShowTime(past));
}